package com.example.CarManagement.sys.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 车辆信息表
 * </p>
 *
 * @author 徐佳彪
 * @since 2025-07-08
 */
@TableName("c_car_info")
@Getter
@Setter
public class CarInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private String id;

    /**
     * 车牌号
     */
    private String plateNumber;

    /**
     * 车辆品牌/车型
     */
    private String model;

    /**
     * 车辆类型（如轿车、SUV）
     */
    private String vehicleType;

    /**
     * 座位数
     */
    private Integer seatCount;

    /**
     * 车身颜色
     */
    private String color;

    /**
     * 购置日期
     */
    private LocalDate purchaseDate;

    /**
     * 保险到期日
     */
    private LocalDate insuranceExpiry;

    /**
     * 年检到期日
     */
    private LocalDate annualCheckExpiry;

    /**
     * 燃油类型（汽油/柴油/新能源）
     */
    private String fuelType;

    /**
     * 当前里程（公里）
     */
    private BigDecimal mileage;

    /**
     * 当前分配的司机ID
     */
    private String assignedDriverId;

    /**
     * 车辆所在位置
     */
    private String location;

    /**
     * 车辆行驶证或车票照片路径
     */
    private String licenseImgUrl;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人ID
     */
    private String createBy;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 更新人ID
     */
    private String updateBy;

    /**
     * 是否删除（0:未删除，1:已删除）
     */
    private Boolean deleted;

    /**
     * 是否删除（0:启用，1:未启用）
     */
    private Integer status;


    @Override
    public String toString() {
        return "CharInfo{" +
                "id = " + id +
                ", plateNumber = " + plateNumber +
                ", model = " + model +
                ", vehicleType = " + vehicleType +
                ", seatCount = " + seatCount +
                ", color = " + color +
                ", purchaseDate = " + purchaseDate +
                ", insuranceExpiry = " + insuranceExpiry +
                ", annualCheckExpiry = " + annualCheckExpiry +
                ", fuelType = " + fuelType +
                ", mileage = " + mileage +
                ", assignedDriverId = " + assignedDriverId +
                ", location = " + location +
                ", licenseImgUrl = " + licenseImgUrl +
                ", remarks = " + remarks +
                ", createTime = " + createTime +
                ", createBy = " + createBy +
                ", updateTime = " + updateTime +
                ", updateBy = " + updateBy +
                ", deleted = " + deleted +
                ", status = " + status +
                "}";
    }
}
